import logging

from redis import StrictRedis


# 定义基本配置信息类
class Config(object):
    # 安全秘钥配置
    SECRET_KEY = '111'

    # sql数据库连接配置
    SQLALCHEMY_DATABASE_URI = "mysql://root:mysql@127.0.0.1:3306/info"
    # 动态追踪修改设置
    SQLALCHEMY_TRACK_MODIFICATIONS = True

    # redis 数据库连接配置
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379

    # flask_session 配置, 讲session保存在redis中
    SESSION_TYPE = 'redis'  # 指定 session 的保存位置
    SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_PORT)  # 指定 session 的储存对象,连接redis
    SESSION_USE_SIGNER = True  # session 加密设置
    SESSION_PERMANENT = False  # 指定 session 不永久存储
    PERMANENT_SESSION_LIFETIME = 86400  # 修改 session 存储时间为一天, 默认31天


# 使用工厂模式, 保证不同环境使用不同配置信息
class DevelopConfig(Config):
    """ 开发环境配置信息 """
    # 调试
    DEBUG = True
    # 日志文件等级
    LOG_LEVEL = logging.DEBUG


class TestingConfig(Config):
    """ 测试环境配置信息 """
    # 调试
    DEBUG = True
    # 日志文件等级
    LOG_LEVEL = logging.DEBUG


class ProductConfig(Config):
    """ 生产环境配置信息 """
    # 调试
    DEBUG = False


# 使用字典进行封装,避免冗余
config = {
    'develop': DevelopConfig,
    'testing': TestingConfig,
    'product': ProductConfig
}

















